At 23:10 +0300 on 07/06/1999, Michael J Davis wrote:
> I have been using this technique for years in Oracle (select next value from
> the primary key sequence and insert using this primary key). I like this
> approach. I don't think a transaction is needed.
I don't know what mechanism Oracle uses. Perhaps even a transaction is not
needed (although logically, the two operations should be one, so as not to
allow the failure of the insertion, if only to save on unused key values).
But doing things like that on the client side means that there is no
logical connection between the sequence and the table. Anybody is free to
enter any primary key, and a mistake in one of the front ends will cause
inconsistency in the database. The theory of databases asserts that you
should try to insert the logic and constraints of the organization's data
into the backend.
I know that this should mean that in fields declared "serial", values other
than the default should not be allowed. Perhaps this should be addressed in
new versions of Postgres somewhere.
Herouth
--
Herouth Maoz, Internet developer.
Open University of Israel - Telem project
http://telem.openu.ac.il/~herutma